# Installation Guide
This page shows the fastest way to get ManipulaPy on your machine and explains the optional extras published on PyPI — they mirror the names you see in pyproject.toml (gpu‑cuda11 & co.).
All commands assume you are inside a fresh virtual environment (python -m venv or Conda). ManipulaPy supports Python 3.8 – 3.12 on Linux, macOS (CPU‑only), and Windows/WSL2.
## System requirements
=================== ============================================================= Component Minimum / recommended =================== ============================================================= CPU x86‑64 or Apple Silicon (runs in Rosetta) RAM 4 GB min / 8 GB recommended GPU (optional) NVIDIA CUDA 11.8 / 12.4 or AMD ROCm 5.7 =================== =============================================================
## Quick install (CPU‑only)
If you do not need GPU acceleration right away:
pip install manipulapy
This brings in all core features — kinematics, dynamics, perception, trajectory planning, PyBullet sim, OpenCV, Torch, scikit‑learn, etc. Nothing else to add.
## GPU extras
ManipulaPy ships several “extras” so you can choose the CUDA flavour that matches your driver:
========================== When to use Command ========================== ———————————————— —————————————- CUDA 11.x (470+ drivers) Most LTS distro packages pip install manipulapy[gpu-cuda11] CUDA 12.x (535+ drivers) Latest NVIDIA toolkits / Ubuntu 24.04 pip install manipulapy[gpu-cuda12] AMD ROCm 5.6+ Recent Radeon/MI cards pip install manipulapy[gpu-rocm] Legacy PyCUDA Prefer pycuda API over CuPy pip install manipulapy[gpu-pycuda] Meta‑extra (defaults CUDA11) Installs CuPy 11 build pip install manipulapy[gpu] ========================== ———————————————— —————————————-
After the install you can verify CUDA access:
import cupy as cp print(“CUDA available:”, cp.cuda.is_available()) print(“Device count:”, cp.cuda.runtime.getDeviceCount())
## Development & docs
Editable dev install (tests, Black, MyPy, coverage):
git clone [https://github.com/boelnasr/ManipulaPy.git](https://github.com/boelnasr/ManipulaPy.git) cd ManipulaPy pip install -e .[dev]
Build the documentation locally:
pip install manipulapy[docs] sphinx-build -b html docs docs/_build/html
## Conda & Docker
ManipulaPy is mirrored on conda‑forge and as ready‑made Docker images:
# Conda CPU build
conda install -c conda-forge manipulapy
# Docker (CPU)
docker pull manipulapy/manipulapy:cpu-latest
# Docker (GPU, CUDA 12)
docker pull manipulapy/manipulapy:cuda12-latest docker run –gpus all -it manipulapy/manipulapy:cuda12-latest
## Troubleshooting
ImportError: No module named ‘cupy’ – install the matching extra (see table).
CUDA out of memory – lower batch sizes or hide the GPU:
CUDA_VISIBLE_DEVICES=”” python your_script.py # forces CPU fallback
Windows build errors – ensure Microsoft C++ Build Tools are installed.
## Update / Upgrade
pip install –upgrade manipulapy # upgrades the core pip install –upgrade “manipulapy[gpu-cuda12]” # upgrade with extras
## Next steps
:doc:quickstart – run your first pick‑and‑place
:doc:user_guide/kinematics – learn the API in depth
:doc:examples/basic_manipulation – full end‑to‑end notebook